home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 1997 July / Freeware CD.iso / FREEWARE / !utils / sfs / SFS117!.EXE / SFS4.DOC < prev    next >
Encoding:
Text File  |  1995-03-20  |  63.6 KB  |  1,311 lines

  1. Controlling SFS Volumes with Smart Cards
  2. ----------------------------------------
  3.  
  4. Requiring the entry of a complex pass phrase to allow access to an SFS volume
  5. can be troublesome since not everyone will be able to remember, and want to
  6. type in, long complicated passwords.  As a result, people may be tempted to
  7. write them down, or choose simple passwords which are easily guessed.  In order
  8. to ease this problem, SFS supports the use of passwords stored in physical
  9. devices such as smart cards and cryptographic ignition keys or datakeys.
  10.  
  11. The simplest way to store a password in a physical device is on a magnetic
  12. stripe card similar to a credit card or ATM card.  Unfortunately these cards
  13. are totally passive, and must rely on an external source to process the
  14. information stored on them.  Both reading and writing the information stored on
  15. the card can be done with relatively little effort[1].
  16.  
  17. A better solution is to use a so-called *smart card* containing built-in memory
  18. circuitry and possibly also access control logic or even a microprocessor.  A
  19. smart card is able, in the face of a given situation, to make decisions by
  20. itself, while a passive card only provides a means to store information.
  21.  
  22. There are three main classifications of what are generally referred to as smart
  23. cards:
  24.  
  25.   Memory cards, which function as an electronic form of magnetic stripe card
  26.   and are actually passive cards, not smart cards.
  27.  
  28.   Logic cards, which contain memory and some form of access control logic such
  29.   as circuitry to check a PIN code before allowing access to the memory (these
  30.   can be regarded as not-very-smart cards).
  31.  
  32.   Smart cards, which contain a microprocessor capable of carrying out complex
  33.   functions above and beyond the capabilities of simple logic cards.
  34.  
  35. Most cards in use today are smart cards, although some applications really only
  36. need basic memory cards (smart cards can be programmed to function as simpler
  37. logic cards if necessary).  Examples of memory cards are cards which can be
  38. pre-loaded with a certain amount of monetary credit and then be used to pay for
  39. bus fares or phonecalls[2].  Examples of smart cards are the cards used to
  40. descramble encrypted pay-TV transmissions such as the ones used by Sky TV and
  41. other broadcasters.
  42.  
  43. SFS currently supports only basic memory cards, as true smart cards for
  44. security applications are still hard to come by, although a card for storing
  45. encryption keys under controlled conditions has recently been released by Xicor
  46. and will be supported by SFS as soon as it becomes generally available.
  47.  
  48. Normally the keying information needed to access an encrypted volume is derived
  49. from your passphrase.  However the "sfscard" program allows the access
  50. information to be transferred to a smart card so that you can only access to
  51. the encrypted data through the use of the card.  Each memory card can store one
  52. encrypted key used to access one or more disk volumes and is protected by a
  53. passphrase in the same way that a normal encrypted volume would be.  An
  54. attacker would therefore need to gain control of both your passphrase and the
  55. smart card the access information is stored on in order to access any encrypted
  56. data.
  57.  
  58. In normal operation, each SFS disk volume is encrypted with a unique disk key
  59. which is completely unrelated to the your passphrase, or key.  When you enter
  60. your user key, it is used to decrypt the disk key, and the disk key is then
  61. used to decrypt the encrypted volume.  There is no correlation between the user
  62. key and the disk key, so that revealing the disk key does not reveal the user
  63. key.  This access mechanism looks as follows:
  64.  
  65.  + User  - - - +            + Encrypted volume  - - - - - - - - - - - - +
  66.  
  67.  | +--------+  |  decrypt   | +--------+   decrypt    +--------------+  |
  68.    |User Key|   ----------->  |Disk Key| -----------> |Encrypted Data|
  69.  | +--------+  |            | +--------+              +--------------+  |
  70.  
  71.  + - - - - - - +            + - - - - - - - - - - - - - - - - - - - - - +
  72.  
  73. When used with a smart card, the user key is instead used to decrypt a key
  74. stored in the smart card which is in turn used to decrypt the disk key:
  75.  
  76.  + User  - - - +            + Smart card  +
  77.  
  78.  | +--------+  |  decrypt   | +--------+  |  decrypt
  79.    |User Key|   ----------->  |Card Key|   ----------+
  80.  | +--------+  |            | +--------+  |          |
  81.                                                      |
  82.  + - - - - - - +            + - - - - - - +          |
  83.                                                      |
  84.                      +-------------------------------+
  85.                      |
  86.                      |      + Encrypted volume  - - - - - - - - - - - - +
  87.                      |
  88.                      |      | +--------+   decrypt    +--------------+  |
  89.                      +----->  |Disk Key| -----------> |Encrypted Data|
  90.                             | +--------+              +--------------+  |
  91.  
  92.                             + - - - - - - - - - - - - - - - - - - - - - +
  93.  
  94. Since the password is no longer used to directly decrypt the disk key to access
  95. the encrypted volume, knowledge of the user password or key, or any attack
  96. based on the user password or key is of no use unless the attacker is also in
  97. posession of the smart card containing the card key.  Since a single card key
  98. can be used to decrypt multiple disk keys, it is possible for one card to
  99. control access to multiple encrypted volumes.  Finally, since each card key can
  100. also contain extra information such as access rights to an encrypted volume, it
  101. is possible for a central authority to issue to cards which control the type of
  102. access allowed for the volume, such as cards which only grant read access to
  103. their holders.
  104.  
  105. A more detailed analysis of the manner in which SFS works with smart cards is
  106. given in the section "Smart Cards and SFS" below.
  107.  
  108. Footnote [1]: Even something as simple as a modified tape recorder can be
  109.               persuaded to read magnetic stripe cards.  This is usually
  110.               unnecessary, however, as magnetic card readers can be purchased
  111.               freely from some electronic equipment suppliers.
  112.  
  113. Footnote [2]: Most of these however have some form of access control mechanism
  114.               and are in fact true smart cards.
  115.  
  116.  
  117. Working with Smart Cards
  118.  
  119. The sfscard program is run in the following manner:
  120.  
  121.   sfscard [format] [clone] [information] [cardcontrol=<action>]
  122.           [retries=retry count] [vol=volume name] [<drive letter>]
  123.  
  124. Since all arguments are named, you can give them in any order.  The order shown
  125. here is merely an example.  In addition, you can abbreviate all commands, so
  126. that for example you can give the `volume=' command as `volume=', `vol=', or
  127. even just `v='.  The full commands are given in the documentation for
  128. completeness.
  129.  
  130. The SFS software uses the LED on the card reader to indicate the current usage
  131. of the reader by the SFS driver.  If the LED is green, the reader is not in use
  132. and no card is inserted.  If the LED is orange, a card is inserted but is not
  133. being used by the SFS driver.  If the LED is red, a card is inserted and is in
  134. use by the driver.  Removing the card when the LED is red may, depending on how
  135. the card is configured, result in the volumes controlled by the card being
  136. unmounted.  However, the SFS software can suspend the driver's access to the
  137. card to allow use of the card reader for other purposes.
  138.  
  139. When sfscard is run, it may find that the card reader is already in use by the
  140. SFS driver, which would be the case if a smart card had been used to mount an
  141. encrypted volume which is still in use.  This is indicated by the reader LED
  142. being red, meaning that a card is inserted and in active use.  In this case
  143. sfscard will prompt:
  144.  
  145.   The smart card reader is currently in use by the SFS driver.  In order to
  146.   process a new card, sfscard must temporarily suspend the driver's handling
  147.   of the card reader.  Do you want to suspend the driver and continue [y/n]
  148.  
  149. At this point you can enter `Y' to temporarily suspend the driver's handling of
  150. the card reader, or `N' to exit the program.
  151.  
  152. Once the driver has been suspended, sfscard will set the card reader LED to
  153. orange to indicating that a card is inserted but not in use by the driver, and
  154. ask you to remove the card that was being used by the driver:
  155.  
  156.   Please remove the current card from the reader
  157.  
  158. It will then set the reader LED to green to indicate that there is no card
  159. present.
  160.  
  161. When it has finished running, sfscard will ask you to remove the new card:
  162.  
  163.   Please remove the current card from the reader
  164.  
  165. and reinsert the original card:
  166.  
  167.   Please re-insert the original card into the reader
  168.  
  169. and will reenable the driver.  The reader LED will be set back to red as the
  170. SFS driver once again takes over use of the reader.  The temporary suspension
  171. of the driver by sfscard allows operations to be performed on smart cards
  172. without the need to unmount any volumes which are controlled by a currently
  173. inserted card.  Only the driver's handling of the card is suspended by this
  174. process - access to encrypted volumes is still possible.
  175.  
  176. Before you can use a new card to control access to SFS volumes, you will need
  177. to format it just like a blank disk needs to be formatted before it can be
  178. used.  The command to format a card is:
  179.  
  180.   sfscard format
  181.  
  182. If a blank card is not already present, the program will prompt you to insert a
  183. new card:
  184.  
  185.   Please insert a smart card into the reader.
  186.  
  187. Once you have inserted a card which is usable by the SFS software, sfscard will
  188. check to see whether it is already set up for use with SFS.  If it is, it will
  189. warn you about this with a message like:
  190.  
  191.   Warning: This card is already set up for use by SFS and controls access to
  192.            the following volumes:
  193.  
  194.              `Encrypted data', created 14/07/94, size 152.7 MB
  195.  
  196.            Are you sure you want to overwrite [y/n]
  197.  
  198. At this point you can enter `Y' to continue or `N' to exit the program.
  199.  
  200. sfscard will now ask you for a password to use with this card, just as mksfs
  201. does.  The password can range in length from 10 to 100 characters, and should
  202. be made up of a complete phrase or sentence rather than just a single word
  203. (sfscard will complain if it thinks the password is of an insecure form and
  204. request that you use a different one).  More details on choosing a password are
  205. given in the section "The Care and Feeding of Password" below.  The smart card
  206. password is completely independant of any passwords used for SFS disk volumes.
  207.  
  208. When asking for the password, sfscard will prompt:
  209.  
  210.   Please enter smart card password (10...100 characters), [ESC] to quit:
  211.  
  212. You should now enter the password, which for security reasons is not echoed to
  213. the screen.  You can correct any typing errors with the backspace key, and use
  214. the Esc key to quit.  The software will check for a password longer than the
  215. maximum of 100 characters or an attempt to backspace past the start of the
  216. password, and beep a warning when either of these conditions occur.
  217.  
  218. Once you have entered the password, sfscard will again prompt:
  219.  
  220.   Please reenter smart card password to confirm, [ESC] to quit:
  221.  
  222. This confirmation is necessary to eliminate any problems with hitting an
  223. incorrect key when you enter the password the first time.  Note that every
  224. single letter, space, and punctuation mark in the password is critical.  Making
  225. a single mistake (getting a letter mixed up, typing a letter in upper case
  226. instead of lower case, or missing a punctuation mark) will completely change
  227. the encryption key.  For this reason, sfscard performs a double-check on the
  228. password to ensure it really is the correct one.
  229.  
  230. Once you have finished entering the password, there is a brief delay while
  231. sfscard performs the complex processing needed to turn it into a key suitable
  232. for the encryption system.  When this has been completed, sfscard will write
  233. the encryption information to the card and exit.  At this stage the new card is
  234. formatted for use with SFS but, just like a freshly-formatted disk, it contains
  235. no information and cannot yet be used to control access to encrypted volumes.
  236.  
  237. In order to use a card to control access to an SFS volume, you must bind the
  238. card to the volume, which links the encrypted key on the card with the one used
  239. to encrypt the volume.  You can do this with the `sfscard volume=<volume name>'
  240. or `sfscard <drive letter>' commands, which tell sfscard which encrypted volume
  241. to bind the card to.  In general you can specify the SFS volume to use by
  242. giving the volume's name with the `volume=' option.  For example if the name
  243. was "Secure disk volume" then the command to bind a smart card to it would be:
  244.  
  245.   sfscard volume=secure
  246.  
  247. You can give the name in upper or lower case and don't have to specify the full
  248. name, as sfscard will match whatever part of the name you supply to the names
  249. of any SFS volumes it finds until it finds a match.  The SFS volumes are
  250. checked in the same order as they are displayed with the `mountsfs info' or
  251. `mountsfs information' command.
  252.  
  253. Alternatively, if the SFS volume to be accessed is on a removable disk, you can
  254. specify it using its drive letter instead of its volume name.  For example if
  255. the disk drive was A: then the command to bind whatever volume it contained to
  256. the card would be:
  257.  
  258.   chsfs <command> a:
  259.  
  260. To find all available SFS volumes on all disks, you can use the `mountsfs info'
  261. option as explaind in the section "Mounting an SFS Volume" above.
  262.  
  263. You can specify the action to be taken for a volume when the card is removed
  264. from the reader with the `cardcontrol=' option.  The possible card control
  265. actions are `none', which does nothing, `readonly', which makes the volume
  266. readonly, and `unmount' and `unmountall', which unmounts the given volume or
  267. all volumes.  The `unmountall' action takes precedence over all other actions,
  268. so that a single volume with the `unmountall' action set would, if mounted,
  269. cause all other volumes to become unmounted when the card is removed.
  270.  
  271. Using the previous example in which the card is bound to whatever volume is in
  272. the A: drive, but with the added condition that the volume be unmounted when
  273. the card used to mount it is removed, the command would be:
  274.  
  275.   sfscard cardcontrol=unmount a:
  276.  
  277. If the bound volume is mounted in the future, it will be unmounted if the smart
  278. card used to mount it is removed from the card reader.
  279.  
  280. The program will now check the disk volume and display information on it and
  281. the process which is about to take place:
  282.  
  283.   Encrypted volume is `Encrypted data disk', created 07/11/94
  284.  
  285.   In order to allow the transfer of the access information from the disk
  286.   volume to the card, you need to enter first the password for the SFS disk
  287.   volume, and then for the smart card.  sfscard will ask first for the disk
  288.   password, then the smart card password.
  289.  
  290. sfscard will now ask for the password for the encrypted SFS volume:
  291.  
  292.   Please enter password (10...100 characters), [ESC] to quit:
  293.  
  294. It will then request that you insert a smart card into the reader if one is not
  295. already present, check the smart card to ensure it has been formatted for use
  296. with SFS, and ask for the password for the card:
  297.  
  298.   Please enter smart card password (10...100 characters), [ESC] to quit:
  299.  
  300. Once this process is complete, it will transfer the access information for the
  301. SFS volume over to the smart card and exit with the message:
  302.  
  303.   Volume characteristics successfully updated.
  304.  
  305. From now on, all access to the volume must be done with the smart card.  It is
  306. no longer possible to use the previous volume password to access the volume
  307. directly.
  308.  
  309. To determine which volumes are bound to a particular card, you can use the
  310. command:
  311.  
  312.   sfscard info
  313.  
  314. which will ask for a card to be inserted if necessary, and then display
  315. information on the card and the volumes it controls access to, for example:
  316.  
  317.   This card is a standard 256-byte memory card which controls access to the
  318.   following volumes:
  319.  
  320.     `Encrypted data', created 14/07/94, size 152.7 MB
  321.     `Personal Financial Records', created 06/09/93, size 10.0 MB
  322.     `Data Backup', created 02/09/94, in drive B:
  323.  
  324. In this case one smart card is used to control access to at least three volumes
  325. (it may also be bound to other removable volumes which are currently not
  326. present).
  327.  
  328. If sfscard cannot find any volumes which are bound to the card in the reader,
  329. it will instead display:
  330.  
  331.   This card is a standard 256-byte memory card which controls access to the
  332.   following volumes:
  333.  
  334.     No matching volumes found
  335.  
  336. This will occur if the card has been formatted but not yet bound to an SFS
  337. volume, or if the card is bound to removable volumes which are currently not
  338. present.
  339.  
  340.  
  341. WinSFS - Using SFS with Windows
  342. -------------------------------
  343.  
  344. The SFS Control Panel item is used to control the operation of SFS in the same
  345. way that the DOS mountsfs program does.  To change the SFS settings, click on
  346. the "Secure FileSystem" icon.  The program will perform a brief scan for SFS
  347. volumes, displaying the following message as it scans:
  348.  
  349.                        [Scanning for Volumes dialog]
  350.  
  351. You can cancel the scan and return to Windows at this point by clicking on the
  352. "Cancel" button.
  353.  
  354. After a few seconds, the main SFS window will be displayed.  This contains
  355. information on mounted and unmounted SFS volumes, and on the current
  356. quick-unmount hotkey and auto-unmount timeout settings:
  357.  
  358.                          [SFS Main Window dialog]
  359.  
  360. The "SFS Volumes" section of the window contains a list of mounted and
  361. unmounted SFS volumes.  By default all unmounted volumes are shown.  You can
  362. display only mounted volumes, or a mixture of mounted and unmounted volumes, by
  363. choosing the appropriate setting in the "Volume Type" settings box.  Mounted
  364. and active volumes are shown with a dark disk icon to the left, unmounted and
  365. inactive volumes are shown with a light disk icon to the left.
  366.  
  367. If no SFS volumes are shown then there are no volumes of the selected kind
  368. available.  For example if "Mounted volumes" is selected in the "Volume Type"
  369. box but no volumes are displayed, then all volumes are currently unmounted.
  370. You can view them by choosing "Unmounted volumes" or "All volumes" in the
  371. "Volume type" box.
  372.  
  373. The "Volume Information" box contains more details on the currently selected
  374. volume.  You can view information on different volumes by changing the volume
  375. selection in the list box.
  376.  
  377. To mount or unmount a volume, either double-click on the volume name or icon in
  378. the list box, or click on the "Mount" or "Unmount" button (this will be
  379. labelled "Mount" or "Unmount" depending on whether the volume is currently
  380. unmounted or mounted).
  381.  
  382. If the volume is currently mounted, you will be asked to confirm the unmount:
  383.  
  384.                         [Confirm Unmount dialog]
  385.  
  386. Choosing "OK" will unmount the volume, chosing "Cancel" will leave it mounted.
  387.  
  388. If the volume is currently unmounted, you will be asked for the password to
  389. access and mount the volume:
  390.  
  391.                          [Mount Volume dialog]
  392.  
  393. You can now enter the password and choose "OK" to mount the volume.  After a
  394. delay of a few seconds, you will be returned to the main SFS window, and the
  395. volume you have just mounted will become part of the "Mounted volumes"
  396. selection.
  397.  
  398. To change the quick-unmount hotkey, choose "Change" in the "Unmount Hotkey"
  399. box.  This will display a window containing the current hotkey settings:
  400.  
  401.                                 [Hotkey dialog]
  402.  
  403. The hotkey can be any combination of the Shift, Control, Alt, and letter keys.
  404. You can select or deselect each key type to build up the key combination you
  405. prefer.  Selecting the letter key option on the bottom right of the "Unmount
  406. Hotkey" box will allow you to choose a letter in the range A-Z to use as part
  407. of the unmount hotkey combination.  If no letter key is in use, this selection
  408. will be disabled.
  409.  
  410. Once you have selected the key combination, choose "OK" to set it or "Cancel"
  411. to return to the main window without updating the hotkey.
  412.  
  413. To change the auto-unmount timeout settings for the currently selected volume,
  414. choose "Change" in the "Unmount Timeout" box.  The timeout setting can only be
  415. changed if the volume is mounted.  If the currently selected volume is not
  416. mounted, this option will be disabled.
  417.  
  418. Selecting the change timeout option will display a window containing the
  419. current timeout settings:
  420.  
  421.                                 [Timeout dialog]
  422.  
  423. The value shown for the "Current Timeout" setting is the total timeout value
  424. for the volume.  The "Time Remaining" value is the time remaining before the
  425. volume is automatically unmounted.  Every time the volume is accessed, the
  426. "Time Remaining" value is reset back to the "Current Timeout" setting.
  427.  
  428. You can change the timeout value by changing the setting of the scrollbar in
  429. the "Set New Timeout" box.  The actual timeout value you have selected will be
  430. displayed as the "New Timeout" for the volume.  Once you have set the required
  431. timeout, choose "OK" to update it or "Cancel" to stay with the original
  432. timeout.
  433.  
  434. From the main SFS window, you can choose "Rescan" to rescan all drives for SFS
  435. volumes.  This can be useful if you change encrypted floppies and need to tell
  436. SFS to update its settings.  Choose "Close" to exit the program and return to
  437. Windows.
  438.  
  439. WinSFS contains internationalization support and will use the date, time, and
  440. language options set from the "International" item in the Windows control
  441. panel.  WinSFS currently supports the English, German, and Italian languages,
  442. if you select any other language from the control panel, the program will
  443. default to using English.
  444.  
  445.  
  446. Usage Examples
  447. --------------
  448.  
  449. This section contains examples of various basic operations to illustrate the
  450. use of the SFS software, although not every single possibility is covered.  It
  451. can be used as a quick reference for SFS use, although it is recommended that
  452. the sections of the documentation mentioned in each example be read for more
  453. information.
  454.  
  455.  
  456. To Create an SFS Volume
  457.  
  458. To encrypt the E: drive to create a volume with the name "Encrypted volume":
  459.  
  460.   mksfs "volume=Encrypted volume" e:
  461.  
  462. Note that that "volume=..." option is quoted, as the volume name contains a
  463. space.  Volume names without a space don't need to be quoted.
  464.  
  465. To encrypt the floppy in the A: drive without giving it a volume name:
  466.  
  467.   mksfs a:
  468.  
  469. More information on creating SFS volumes is given in the section "Creating an
  470. SFS Volume" above.
  471.  
  472.  
  473. To Delete an SFS Volume
  474.  
  475. To delete the volume "Secure data", rendering its contents unreadable:
  476.  
  477.   chsfs delete volume=secure
  478.  
  479. Note the use of only a portion of the full volume name.  SFS will match any
  480. part of the given name to the name of the encrypted volume.  More information
  481. on deleting SFS volumes is given in the section "Changing the Characteristics
  482. of an SFS Volume" above.
  483.  
  484.  
  485. To Convert an SFS Volume back to the Unencrypted Form
  486.  
  487. To convert the encrypted floppy in the A: drive back to a normal DOS disk:
  488.  
  489.   chsfs convert a:
  490.  
  491. More information on converting SFS volumes back to their unencrypted form is
  492. given in the section "Changing the Characteristics of an SFS Volume" above.
  493.  
  494.  
  495. To Mount an SFS Volume
  496.  
  497. To mount the volume "Personal Info" and make it available for use:
  498.  
  499.   mountsfs volume=personal
  500.  
  501. Note the use of only a portion of the full volume name.  SFS will match any
  502. part of the given name to the name of the encrypted volume.
  503.  
  504. To mount the encrypted floppy in the B: drive:
  505.  
  506.   mountsfs b:
  507.  
  508. To mount the volume "Encrypted data" onto the F: drive so that it becomes
  509. available for use as F:
  510.  
  511.   mountsfs mountdrive=f: volume=encrypt
  512.  
  513. More information on mounting SFS volumes is given in the section "Mounting an
  514. SFS Volume" above.
  515.  
  516.  
  517. To Obtain Information on Mounted SFS Volumes
  518.  
  519. To obtain information on all currently mounted volumes and volume mount points:
  520.  
  521.   mountsfs status
  522.  
  523. More details on obtaining information SFS volumes are given in the section
  524. "Mounting an SFS Volume" above.
  525.  
  526.  
  527. To Unmount an SFS Volume
  528.  
  529. To unmount the volume currently mounted as D:
  530.  
  531.   mountsfs d:
  532.  
  533. There are several other ways to unmount volumes without using mountsfs which
  534. depend on the way the volume is set up.  More information on unmounting SFS
  535. volumes is given in the section "Unounting an SFS Volume" above.
  536.  
  537.  
  538. To Change the Password of an SFS Volume
  539.  
  540. To change the password for the volume "My Data Disk":
  541.  
  542.   chsfs newpass
  543.  
  544. There are several other characteristics of encrypted volumes which can be
  545. changed such as the timed unmount information, the disk access mode, and the
  546. volume name.  More information on changing the properties of SFS volumes is
  547. given in the section "Changing the Characteristics of an SFS Volume" above.
  548.  
  549.  
  550. To Set Up a Smart Card for use with SFS
  551.  
  552. To initialise a smart card in order to allow it to be used with SFS:
  553.  
  554.   sfscard format
  555.  
  556. To bind an initialised card to the volume "Business Records", allowing use of
  557. the card to mount the volume:
  558.  
  559.   sfscard volume=business
  560.  
  561. Note the use of only a portion of the full volume name.  SFS will match any
  562. part of the given name to the name of the encrypted volume.
  563.  
  564. More information on using smart cards with SFS is given in the section
  565. "Controlling SFS Volumes with Smart Cards" above.
  566.  
  567.  
  568. To Change the Quick-unmount Hotkey
  569.  
  570. To change the quick-unmount hotkey for all mounted volumes to a combination of
  571. the Control, Alt, and Z keys:
  572.  
  573.   mountsfs hotkey=ctrl-alt-z
  574.  
  575.  
  576. To Change the Auto-unmount Timeout for a Mounted Volume
  577.  
  578. To change the auto-unmount timeout for the SFS volume mounted as D: to 30
  579. minutes:
  580.  
  581.   mountsfs timeout=30 d:
  582.  
  583.  
  584. Command Summary
  585. ---------------
  586.  
  587. This section serves as a quick-reference for the options available with the
  588. various SFS programs.  The available options for mksfs, mountsfs, chsfs, and
  589. adminsfs are:
  590.  
  591. MakeSFS - Make Secure Filesystem
  592.  
  593.   -c = Perform a confidence test on the volume to be encrypted without
  594.        actually encrypting it
  595.   -t = Test the integrity of the MDC/SHS encryption code used in SFS
  596.   -e = Display an extended error code if an error occurs.  This provides
  597.        extra information on the nature of some errors
  598.  
  599.   multiuser         = Allow multiuser access on the volume to be created
  600.   access=<mode>     = Specify the disk access mode (as given by the
  601.                       output of the `-c' option) to use for this volume
  602.   timeout=<timeout> = Specify the auto-unmount timeout for this volume
  603.   wipe              = Wipe the original data before overwriting it with
  604.                       encrypted data (this option is very slow)
  605.   serialnumber=<serial number> = Specify the serial number of the volume to
  606.                                  be created
  607.  
  608.   volume=<volume name> = Specify the name of the volume to be created
  609.   <drive letter>       = Specify the letter of the drive to create the
  610.                          encrypted volume on
  611.  
  612. MountSFS - Mount Secure Filesystem
  613.  
  614.   -c = Used an escrowed key to access the volume
  615.  
  616.   +r  = Mount the encrypted volume with read-only access
  617.   +rw = Mount the encrypted volume with read/write access (default)
  618.  
  619.   info        = Show brief information on all available SFS volumes
  620.   information = Show detailed information on all available SFS volumes
  621.   status      = Show information on mounted volumes only
  622.   unmount     = Unmount the volume
  623.  
  624.   hotkey=<hotkeys>       = Set the quick-unmount hotkey combination
  625.   timeout=<timeout>      = Set the auto-unmount timer value in minutes
  626.   cardcontrol=<action>   = Specify the action to take when the smart
  627.                            card corresponding to the mounted volume is
  628.                            removed
  629.   mountdrive=<drive unit>= Specify the SFS drive unit to mount the
  630.                            volume on
  631.   user=<username>        = Specify the user name when mounting
  632.                            a volume with multiuser access
  633.   userfile=<filename>    = Specify the path to the information file
  634.                            associated with a volume which allows
  635.                            multiuser access
  636.  
  637.   volume=<volume name> = Specify the name of encrypted volume to mount
  638.   <drive letter>       = Specify the drive letter of the volume to mount
  639.                          (For volumes on floppy disks only)
  640.  
  641.   <action> = The smart card control action, which can be one of:
  642.              none      = Do nothing when card is removed
  643.              readonly  = Make volume readonly when card is removed
  644.              unmount   = Unmount current volume when card is removed
  645.              unmountall= Unmount all volumes when card is removed
  646.  
  647. ChangeSFS - Change Secure Filesystem
  648.  
  649.   -c = Used an escrowed key to access the volume
  650.  
  651.   newpassword             = Set a new volume password
  652.   newvolume=<volume name> = Specify the new volume name
  653.   newtimeout=<timeout>    = Specify the new auto-unmount timeout
  654.   newaccess=<access mode> = Specify the new disk access mode
  655.   newcardcontrol=<action> = Specify the action to take when the smart
  656.                             card corresponding to the given volume is removed
  657.  
  658.   delete  = Delete SFS volume
  659.   convert = Convert volume back to unencrypted form
  660.  
  661.   splitkey=<quorum>/<total>= Split key for escrow purposes (refer
  662.                              to documentation)
  663.  
  664.   volume=<volume name> = Specify the name of the encrypted volume to change
  665.   <drive letter>       = Specify the drive letter of the volume to change
  666.                          (For volumes on floppy disks only)
  667.  
  668.   <action> = The smart card control action, which can be one of:
  669.              none      = Do nothing when card is removed
  670.              readonly  = Make volume readonly when card is removed
  671.              unmount   = Unmount current volume when card is removed
  672.              unmountall= Unmount all volumes when card is removed
  673.  
  674. AdminSFS - Administer SFS User Database
  675.  
  676.   adduser=<user name> = Add a new user with the given name to the database
  677.   deluser=<user name> = Remove user with the given name from the database
  678.   chuser=<user name>  = Change user database entry for the named user
  679.   showuser=<user name>= Show access information for a given user
  680.   showall             = Show access information for all users
  681.  
  682.   validfrom=<DDMMYY>  = Set date after which access for a user is allowed
  683.   validto=<DDMMYY>    = Set date at which a users access expires
  684.  
  685.   userfile=<filename> = Specify the path to the user information file
  686.  
  687. SFSCard - Manage SFS Smart Cards
  688.  
  689.   format      = Initialise a card to prepare it for use
  690.   information = Show information on a smart card
  691.   clone       = Clone a card for another user
  692.  
  693.   cardcontrol=<action> = Specify the action to take when the smart
  694.                          card corresponding to the given volume is removed
  695.  
  696.   volume=<volume name> = Specify the name of the volume which the card
  697.                          is to be used as a key for
  698.   <drive letter>       = Specify the drive letter of the volume which the
  699.                          card is to be used as a key for (For volumes on
  700.                          floppy disks only)
  701.  
  702.   <action> = The smart card control action, which can be one of:
  703.              none      = Do nothing when card is removed
  704.              readonly  = Make volume readonly when card is removed
  705.              unmount   = Unmount current volume when card is removed
  706.              unmountall= Unmount all volumes when card is removed
  707.  
  708.  
  709. Troubleshooting
  710. ---------------
  711.  
  712. Over the years a variety of strange hardware and software setups have been
  713. created in order to get around some of the shortcomings of the PC hardware and
  714. DOS (and occasionally other operating systems) software.  Since SFS accesses
  715. the disk at a level below that normally used by the operating system, it will
  716. bypass special options like compressed volumes and non-local networked drives,
  717. and won't recognise nonstandard hardware like drives with more than 1024
  718. cylinders which require special software patches in order to work with DOS.
  719. For example, SFS will recognise the uncompressed volumes used by Stacker,
  720. DoubleSpace, and JAM, but won't see the compressed volumes as these are an
  721. illusion created through software and visible only to DOS.  It is therefore not
  722. possible to encrypt compressed volumes (there would be very little point, as
  723. encryption would render the data completely uncompressible), although it is
  724. possible to create a compressed volume inside an encrypted volume (this is
  725. covered in the section "Creating Compressed SFS Volumes" above).
  726.  
  727.  
  728. Checking for Problems with mksfs
  729.  
  730. If your system has an unusual setup, or if you're worried about what SFS may
  731. do, you can use a special option with the mksfs program to perform a check on
  732. the drive which is to be encrypted.  This option also bypasses a number of the
  733. usual checks SFS performs relating to duplicate volume names, anonymous
  734. volumes, and so on, to allow all types of volume arrangements to be checked.
  735.  
  736. When you use `-c' check option for mksfs along with the drive letter of the
  737. drive which you intend to encrypt, mksfs will (if the volume in question is a
  738. fixed disk) first display technical information on all available fixed disk
  739. volumes, so that the command:
  740.  
  741.     mksfs -c e:
  742.  
  743. might produce the following output:
  744.  
  745.   Drive partition information follows:
  746.  
  747.   Ph Bt Dr Cyl. Head Sec. Cyl. Head Sec.  Size  ID Type
  748.   -- -- -- ---- ---- ---- ---- ---- ---- ------ -- ----
  749.    0  N  C    0    1    0  379   15   39 121600 06 DOS (16-bit FAT, >= 32M)
  750.    0  Y  -  380    0    0  383   15   39   1280 0A OS/2 boot manager
  751.    0  N  D  384    1    0  594   15   39  67200 06 DOS (16-bit FAT, >= 32M)
  752.    0  N  E  595    1    0 1022   15   39 136640 06 DOS (16-bit FAT, >= 32M)
  753.                                                    This would be the SFS disk
  754.   06  N  -    0    1    0  442   63   31 452608 07 OS/2 HPFS
  755.   06  N  F  443    0    0  571   63   31 131072 06 DOS (16-bit FAT, >= 32M)
  756.   06  N  G  572    0    0  872   63   31 307200 06 DOS (16-bit FAT, >= 32M)
  757.  
  758. This is only displayed for fixed disks, as floppy disks don't contain this
  759. information.  The values in the various columns are Ph = physical drive number,
  760. Bt = bootable flag, Dr = DOS drive letter, Cyl,Head,Sec = partition start,
  761. Cyl,Head,Sec = partition end, Size = size in kbytes, ID = partition ID byte,
  762. and Type = partition type.  The proposed SFS partition will be marked as such.
  763. The drive with an apparent 2-digit physical drive number is a SCSI drive which
  764. isn't accessible through the BIOS; the first digit is the SCSI target ID, the
  765. second digit is the logical unit number.  If you don't know what these values
  766. mean, don't worry - this option is mainly useful in providing technical
  767. information for those who want it.
  768.  
  769. Once all drives have been checked, mksfs will display specific information on
  770. the actual volume in question:
  771.  
  772.   Volume will be checked on fixed drive E:
  773.   This drive has a capacity of 136.6 MB and is labelled `Data disk'
  774.   Are you sure you want to check this volume [y/n]
  775.  
  776. As with the usual mksfs process, entering 'Y' will continue with the volume
  777. check and entering 'N' will exit.  If you choose to continue, mksfs will first
  778. perform an initial disk confidence test which consists of some general checks
  779. on the volume layout to make sure its format is valid, and will then perform a
  780. read confidence test in which it reads random disk blocks and compares them
  781. with the data reported by the operating system.  If any errors are encountered,
  782. it will print a diagnostic message before continuing.  If all is OK, the
  783. sequence of messages will be:
  784.  
  785.   Performing disk confidence test...
  786.   Performing read confidence test...
  787.   [various test-in-progress messages]
  788.  
  789. If there are problems, the diagnostic message will give more information on the
  790. nature of the problem.  After the basic tests have completed, mksfs will check
  791. to see whether any sort of enhanced drive access is possible for the particular
  792. drive on which the SFS volume is to be created.  The use of enhanced drive
  793. handling can speed up access to the drive, or may be necessary for drives which
  794. aren't directly accessible to the system.
  795.  
  796. First, mksfs will check whether the system supports any of the enhanced IDE
  797. (EIDE) access modes, and whether any of these modes are currently in use for
  798. the drive being checked.  If the system supports enhanced IDE access but isn't
  799. using it for the drive, mksfs will display:
  800.  
  801.   The system supports enhanced IDE (EIDE) drive handling, but this drive isn't
  802.   being used in any of the EIDE modes.
  803.  
  804. and continue with checking for other enhanced access modes.  This may happen if
  805. you are using an older IDE drive which doesn't support the new access modes in
  806. a newer system.  If the drive is being used by the system in an enhanced mode,
  807. mksfs will display information on the current drive access mode, for example:
  808.  
  809.   This drive is a fixed disk EIDE drive running in PIO mode 3 with 16-sector
  810.   block transfers with LBA (logical block addressing) enabled.  SFS will use
  811.   this enhanced access mode for all disk accesses.
  812.  
  813. and then perform a series of extended tests to see whether LBA (logical block
  814. adressing) access to the drive is possible.  This access mode is faster than
  815. the standard access mode and allows for special capabilities such as the
  816. ability to access drives of up to 8GB, and handling for removable-media drives.
  817. The extended tests are similar to the previous tests, and display the same
  818. messages if problems are found.  If problems are detected, mksfs will display:
  819.  
  820.   This drive does not appear to support the LBA access mode used by SFS.  The
  821.   default slower access mode will be used.
  822.  
  823. Otherwise, the message:
  824.  
  825.   This drive supports the LBA access mode used by SFS.  You can enable use of
  826.   this mode by specifying the `access=lba' option when you run mksfs, or enable
  827.   it at a later date using the `newaccess=lba' option in chsfs.
  828.  
  829. will be displayed.
  830.  
  831. If no EIDE access modes are possible, mksfs will check for older IDE drives
  832. and, if it finds one, will display specific information about it and ask
  833. whether additional tests should be made to determine whether use of any of the
  834. alternative access modes supported by the SFS driver is possible.  If the drive
  835. is an EIDE drive but the system doesn't appear to support EIDE handling, mksfs
  836. will display a message to say that the default slower access mode will be used,
  837. typically:
  838.  
  839.   This drive is a Seagate HD2770 with a 96K buffer, and appears to support the
  840.   high-speed IDE access mode which SFS is capable of.  However, the drive
  841.   parameters indicate that it is being used in an enhanced mode of operation
  842.   which is incompatible with the SFS high-speed IDE access.  The default slower
  843.   access mode will be used
  844.  
  845. This message will only occur in very rare circumstances, more usually it will
  846. be something like:
  847.  
  848.   This drive is a WDC AC2420 with a multi-sector 256K buffer, and appears to
  849.   support the high-speed IDE access mode which SFS is capable of.  mksfs will
  850.   now test whether this is indeed true.  Are you sure you want to perform the
  851.   test [y/n]
  852.  
  853. with the exact text depending on the drive type.  At this point you can enter
  854. 'Y' to run the extended tests or 'N' to exit the program.  The extended tests
  855. are similar to the previous tests, and display the same messages if problems
  856. are found.  If problems are detected, mksfs will display:
  857.  
  858.   This drive does not appear to support the high-speed IDE access mode used by
  859.   SFS.  The default slower access mode will be used.
  860.  
  861. Otherwise, the message:
  862.  
  863.   This drive supports the high-speed IDE access mode used by SFS.  You can
  864.   enable use of this mode by specifying the `access=ide' option when you run
  865.   mksfs, or enable it at a later date using the `newaccess=ide' option in
  866.   chsfs.
  867.  
  868. will be displayed.
  869.  
  870. If the drive is a SCSI device which needs a device driver to work with DOS, SFS
  871. will access it directly as a SCSI device rather than simply a standard disk
  872. drive.  SFS will work with drives accessed through ASPI (Adaptec SCSI
  873. Programming Interface) and CAM (Common Access Method) drivers.  ASPI drivers
  874. come with most SCSI drive controllers or can be purchased seperately.  The CAM
  875. driver ASPICAM.SYS is available from NCR[1].  If the drive is available for
  876. access both through the drive controller BIOS and an ASPI driver (which can
  877. happen in some unusual situations), SFS will use the first access method which
  878. works, which is almost always the BIOS one.
  879.  
  880. If direct SCSI access is possible, mksfs will display additional information on
  881. the drive, typically:
  882.  
  883.   This drive is a MAXTOR XT-8760S SCSI drive attached to an ADAPTEC AHA-1x4x
  884.   host with host ID 0, target ID 2, logical unit number 0.  SFS will access it
  885.   as a SCSI device rather than a normal hard drive.
  886.  
  887. and then perform a series of extended tests to see whether SCSI device access
  888. to the drive is possible.  The extended tests are similar to the previous
  889. tests, and display the same messages if problems are found.  If problems are
  890. detected, mksfs will display:
  891.  
  892.   This device does not appear to support the SCSI access mode used by SFS.  The
  893.   default slower access mode will be used.
  894.  
  895. Otherwise, the message:
  896.  
  897.   This drive supports the SCSI access mode used by SFS.  mksfs will
  898.   automatically enable this mode when creating the SFS volume.
  899.  
  900. will be displayed.  If mksfs is used to create an encrypted volume on this
  901. drive, it will automatically access it with a SCSI access mode (equivalent to
  902. `access=scsi') without having to be told about it.  There are programs
  903. available to diagnose SCSI access through ASPI drivers if SFS has trouble
  904. working with the drive[2].
  905.  
  906. Once all tests have finished, mksfs will display the message:
  907.  
  908.   Confidence test successfully concluded
  909.  
  910. or an error count if errors occurred.  In either case, mksfs will exit after
  911. the tests have concluded without creating the encrypted volume.  If used with
  912. the `-c' option, mksfs will never modify any information on any disk, whether
  913. the tests are successful or not.  This is important, as it allows you to
  914. perform a confidence test before you create an encrypted volume.
  915.  
  916.  
  917. Problems with Other Software
  918.  
  919. A few pieces of software have been identified which have problems working with
  920. SFS.  These are listed below, along with possible workarounds and solutions to
  921. problems.
  922.  
  923.  Always Technology's ASPI SCSI manager:
  924.  
  925.   The Always Technology SCSI manager has a bug which makes use of SCSI devices
  926.   with logical unit numbers (LUN's) other than the default value of 0
  927.   impossible.  The SFS programs will detect this SCSI manager and avoid using
  928.   devices with LUN's other than 0.  In practice this will not be a problem
  929.   since SCSI devices normally have the LUN set to 0.
  930.  
  931.  Borland's Integrated Development Environment:
  932.  
  933.   Some older versions of the Borland software development tools don't handle
  934.   DOS critical errors very well (they hang either when the error occurs or soon
  935.   afterwards).  Since trying to access a non-mounted volume is treated by DOS
  936.   as an error, it may cause programs like the IDE (Integrated Development
  937.   Environment) and the debugger to hang[3].  Trying to read a floppy drive
  938.   without a disk in the drive, and any other action which causes a DOS critical
  939.   error, can have the same effect.
  940.  
  941.  CDROM drivers:
  942.  
  943.   The Mitsumi CDROM device driver, if installed before another block driver
  944.   like SFS, will mistakenly try to use the drive letter allocated to the other
  945.   driver as its own one.  There have been reports of other CDROM drivers (in
  946.   particular the Sony one) which display similar traits (CDROM drivers are
  947.   strange beasts which have rather special requirements).  The DTC SCSI driver
  948.   has a similar problem in that it grabs more drive letters than DOS allocates
  949.   to it, which means that any block drivers loaded after it will be allocated
  950.   drive letters by DOS which are already being used by the SCSI driver.  The
  951.   solution to this problem is to make sure that the SFS driver is loaded before
  952.   any problematic CDROM or SCSI drivers by placing the DEVICE=SFS.SYS line
  953.   before the one which loads the CDROM or SCSI driver in the CONFIG.SYS file,
  954.   or to use the JDRIVE utility to relocate the drive letter or letters used by
  955.   SFS, as explained in the section "Advanced SFS Driver Options" above.
  956.  
  957.  DRDOS 6.0 KEYB keyboard driver:
  958.  
  959.   The DRDOS 6.0 KEYB driver incorrectly handles the keyboard interrupt and
  960.   swallows all keypress codes, only passing the break codes on to SFS and other
  961.   software.  This means that any unmount hotkey involving an alphanumeric key
  962.   won't work, as SFS never gets to see the keypress[4].  A solution to this
  963.   problem is to use a different keyboard driver such as the MSDOS one or a
  964.   third-party driver.
  965.  
  966.   In addition, SFS always acts as though the keyboard being used has the
  967.   default US-style layout, since the SFS software communicates directly with
  968.   the keyboard rather then working through driver software (which hasn't been
  969.   loaded yet when SFS is activated).  However since all SFS software performs
  970.   the same keyboard handling, this will only be noticed by SFS and should be
  971.   transparent to the end user.
  972.  
  973.  Lantastic server software version 6.0:
  974.  
  975.   The Lantastic server software, version 6.0, can cause problems with mksfs.
  976.   If running "mksfs -c" reports errors then you should unload the server.exe
  977.   program before using mksfs to encrypt a DOS volume, and also before you use
  978.   chsfs with the `convert' option.
  979.  
  980.  Misbehaved 32-bit TSR's and device drivers:
  981.  
  982.   Some (now very rare) device drivers and TSR's will destroy the contents of
  983.   32-bit registers when they are activated, which means that the data in the
  984.   SFS driver will become invalid from one machine instruction to the next.
  985.   There have been reports of older versions of the PC-Kwik cache and Novell's
  986.   non-dedicated file server version 2.2 doing this.  A program to detect and
  987.   possibly fix this problem is available from garbo.uwasa.fi as
  988.   /pc/turbopas/trash.zip.
  989.  
  990.  S&H Computer System's TSX environment:
  991.  
  992.   SFS will not work with S&H Computer Systems' TSX multi-tasking operating
  993.   system, which doesn't support some disk utilities, DOS device drivers, and
  994.   programs which directly access hardware devices (which pretty well covers all
  995.   of what SFS does).
  996.  
  997.  VGADISK RAM drive:
  998.  
  999.   Tommy Frandsen's VGADISK program, which creates a RAM drive in VGA video
  1000.   memory, has a bug in which the same code is used for driver IOCTL reads and
  1001.   standard device reads.  Since the driver IOCTL read count is given in bytes
  1002.   and the standard device read count is given in sectors, any IOCTL read to the
  1003.   VGADISK device returns 512 times as much data as is requested.  As a result,
  1004.   it will crash most of the SFS software (since it returns around 25K of data
  1005.   when 45 bytes are requested), as well as a number of other disk-related
  1006.   utilities such as the DOS 6 scandisk.
  1007.  
  1008.  
  1009. Problems with hardware
  1010.  
  1011. A few pieces of hardware have been identified which have problems working with
  1012. SFS.  These are listed below, along with possible workarounds and solutions to
  1013. problems.
  1014.  
  1015.  Bernoulli Drives
  1016.  
  1017.   SFS currently does not work with Iomega's Bernoulli drives because the
  1018.   Bernoulli needs a special OAD (Closed Architecture Driver) to allow access to
  1019.   the drive, and Iomega won't tell anyone what this driver does or what's
  1020.   needed to talk to a Bernoulli drive.  If large-capacity removable-media
  1021.   encryption is required, it is recommended that a removable SCSI or IDE drive
  1022.   (there are many brands available) be used instead of an Iomega product.
  1023.  
  1024.  Phoenix BIOS and 3.5" Floppies
  1025.  
  1026.   Some versions of the Phoenix BIOS give a multitude of disk errors when
  1027.   encrypting a disk using mksfs.  The exact error type is uncertain since the
  1028.   error code returned when the disk access fails is an undefined value.  This
  1029.   only happens on a very small number of systems using the Phoenix BIOS, for
  1030.   example a 1988 NEC machine with BIOS version 1.10 and a 1994 DEC machine with
  1031.   BIOS version 1.03 don't exhibit the problem, but 1993 Zenith machines with
  1032.   BIOS versions 1.01 and 1.03 do.  The problem appears to be specific to the
  1033.   disk drive or controller hardware, and only crops up in a small minority of
  1034.   machines using the Phoenix BIOS.
  1035.  
  1036.   There are two possible workarounds to the problem.  The first is to run mksfs
  1037.   from a DOS box under Windows.  Windows bypasses the BIOS disk access routines
  1038.   with its own routines which don't exhibit the problem, and the disk
  1039.   encryption can be carried out without any problems.  The second workaround is
  1040.   to encrypt the disk on a machine with a different BIOS.
  1041.  
  1042.   This bug only affects the operation of mksfs on 3.5" drives.  mountsfs,
  1043.   chsfs, sfscard, the SFS driver, and mksfs on anything but a 3.5" drive are
  1044.   unaffected by this BIOS problem.
  1045.  
  1046. It has been reported that the Award 3.03 BIOS when used with some floppy drives
  1047. also causes problems, especially with newer versions of DOS (version 6.0 and
  1048. up), which may have great trouble reliably writing disks.  Microsoft's
  1049. suggested solution to the problem is a BIOS upgrade, there have been no
  1050. problems reported with SFS itself when used with this BIOS.
  1051.  
  1052. Footnote [1]: It is also available from the NCR FTP site ftp.ncr.com as part of
  1053.               the archive /pub/ncrchips/scsi/drivers/dos_win/dos_drv.zip.
  1054.  
  1055. Footnote [2]: One such program is ASPI-ID, available for FTP from Simtel (via
  1056.               its primary mirror site oak.oakland.edu, and all other Simtel
  1057.               mirrors) as /simtel/msdos/diskutil/aspiid10.zip.  This program
  1058.               will report information based on the SCSI Inquiry and Mode Sense
  1059.               command, and can optionally save Mode Sense data to a file for
  1060.               later reference.
  1061.  
  1062. Footnote [3]: This is the famous recursive footnote[3].
  1063.  
  1064. Footnote [4]: The KEYB driver provides a complete replacement for the BIOS int
  1065.               9h keyboard driver.  KEYB is somewhat peculiar in its keyboard
  1066.               handling, and doesn't coexist well with other keyboard handlers.
  1067.               It also disables interrupts for lengthy periods of time while
  1068.               processing keyboard scan codes.
  1069.  
  1070.  
  1071. Authentication of SFS Software
  1072. ------------------------------
  1073.  
  1074. There have been several occasions in the past when fake versions of software
  1075. have been distributed.  Sometimes these fake releases are even wrapped up in a
  1076. nice-looking "security envelope" guaranteeing their authenticity.  With
  1077. encryption software like SFS it is all too tempting for an opponent to simply
  1078. create and distribute a compromised version of SFS rather than try to break the
  1079. SFS encryption itself.  In order to avoid any problems of this sort, the
  1080. distributed SFS driver and executables are accompanied by a digital signature
  1081. which can be used to verify that it is indeed an official version.
  1082.  
  1083. In order to check the authenticity of the particular version of SFS, you will
  1084. need the PGP encryption package, and my public key, which is included in the
  1085. standard PGP distribution.  My key is signed by Philip Zimmermann, the original
  1086. author of PGP, and several members of the PGP development team.
  1087.  
  1088. First, you should check my key for authenticity with the command:
  1089.  
  1090.   pgp -kc "Peter Gutmann"
  1091.  
  1092. When it performs the key check, PGP should display the following signatures:
  1093.  
  1094.   Type bits/keyID     Date    User ID
  1095.   pub  1024/997D47 1992/08/02 Peter Gutmann <pgut1@cs.aukuni.ac.nz>
  1096.   sig!      E722D9 1992/11/26   Branko Lankester <lankeste@fwi.uva.nl>
  1097.   sig!      997D47 1992/10/11   Peter Gutmann <pgut1@cs.aukuni.ac.nz>
  1098.   sig!      7C02F9 1992/09/07   Felipe Rodriquez <nonsenso@utopia.hacktic.nl>
  1099.   sig!      1336F5 1992/09/05   Harry Bush <Harry@castle.riga.lv>
  1100.   sig!      67F70B 1992/09/02   Philip R. Zimmermann <prz@sage.cgd.ucar.edu>
  1101.  
  1102. There may be other signatures present as well, but those shown about are the
  1103. ones from the PGP development team and are the most important ones.  Version
  1104. 2.1 and above of PGP can, in addition, generate a key fingerprint for a key.
  1105. This can be calculated with the command:
  1106.  
  1107.   pgp -kvc "Peter Gutmann"
  1108.  
  1109. PGP should display the following:
  1110.  
  1111.   pub  1024/997D47 1992/08/02 Peter Gutmann <pgut1@cs.aukuni.ac.nz>
  1112.             Key fingerprint = 7C 6D 81 DF F2 62 0F 4A  67 0E 86 50 99 7E A6 B1
  1113.  
  1114. If the keyID or key fingerprint for my key differ from the ones shown above or
  1115. the signatures don't check out, then the key is a probably a fake and shouldn't
  1116. be trusted.  Assuming the key is in order, you can check the authenticity of
  1117. the device driver and the support software with:
  1118.  
  1119.   pgp sfs.sig sfs.sys
  1120.   pgp <program>.sig <program>.exe
  1121.  
  1122. where sfs.sig and <program>.sig are the digital signatures included with SFS as
  1123. distributed.  For example to check the authenticity of the mksfs program type:
  1124.  
  1125.  pgp mksfs.sig mksfs.exe
  1126.  
  1127. When it performs the check, PGP should display:
  1128.  
  1129.   Good signature from user Peter Gutmann <pgut1@cs.aukuni.ac.nz> .
  1130.   Signature made <date of signature>
  1131.  
  1132. If PGP reports a bad signature then you shouldn't trust the executable.  You
  1133. can obtain a new, hopefully untouched, version from any archive site, BBS, or
  1134. system which carries the standard SFS distribution, or get it directly from the
  1135. author.
  1136.  
  1137.  
  1138. Applications
  1139. ------------
  1140.  
  1141. Apart from the simple use of SFS for personal and business data privacy, there
  1142. are a number of other possible applications for which it can be used.  Some of
  1143. these are listed below.
  1144.  
  1145.  
  1146. Secure Information Exchange
  1147.  
  1148. If a communications channel is available between two systems which use SFS,
  1149. confidential data can be transferred from one encrypted SFS volume to the other
  1150. by using encryption on the communications channel.  For example a businessman
  1151. whose work involves a lot of travel could read data off the SFS volume on his
  1152. portable computer and encrypt it as it is sent via modem to his place of work.
  1153. At work the data could be decrypted and written to another SFS volume.  The
  1154. only time the data is available in an unencrypted form is while it is being
  1155. read off the SFS volume and re-encrypted for transmission, which represents a
  1156. minimal risk as interrupting the transmission will involve stopping the program
  1157. which will (presumably) contain error handlers which erase any sensitive
  1158. information from memory.
  1159.  
  1160. Using a package like PGP (Pretty Good Privacy) or a PEM (Privacy-Enhanced Mail)
  1161. implementation in conjunction with SFS allows the secure distribution of
  1162. information through an online service like a computer bulletin board.  The
  1163. online system can retrieve the public key of the person requesting the
  1164. information, read the required data off the SFS volume into the encryption
  1165. program where it is encrypted with the recipients public key, and transmit it.
  1166. At the other end the recipient will decrypt the data with their private key and
  1167. write it straight onto their own SFS volume.  Again, the amount of time in
  1168. which unencrypted data is available is minimal, and properly implemented
  1169. software will destroy any sensitive information if interrupted in any way.
  1170.  
  1171.  
  1172. Defence in Depth
  1173.  
  1174. With the increasing strength of cryptographic software which is becoming
  1175. available to the public, means of compromising encryption security which don't
  1176. involve breaking the encryption itself are becoming more and more desirable.
  1177. This may involve things like creating fake versions of the encryption software
  1178. which have trapdoors in them and planting them in a victim's system, planting
  1179. versions which save the entered password somewhere and then restore the
  1180. original unaltered copies, or similar tricks.  This means that for maximum
  1181. security it is necessry to not only protect the password, but also to protect
  1182. the encryption software itself, and any software which interacts with it, and
  1183. anything which interacts with that, ad nauseum.  If several encryption and
  1184. security packages are used, every one of these must be protected separately.
  1185.  
  1186. By using SFS, some degree of protection is offered against malicious
  1187. manipulation, since an attacker must first get to the software stored on an SFS
  1188. volume in order to compromise it.  Storing other security-related software on
  1189. an encryption volume takes it out of the reach of any attack, but makes the SFS
  1190. software itself more of a target for an attack.  Eventually this problem can be
  1191. reduced somewhat through the use of SFS encryption hardware, which is currently
  1192. under (very gradual) development.  Another possibility is to store duplicate
  1193. copies of the SFS software on an encrypted volume which is initially mounted
  1194. read-only using the unencrypted, untrusted copies.  The trusted versions on the
  1195. SFS volume can be compared (using software also stored on the SFS volume) with
  1196. the untrusted versions, and if they are identical to the trusted reference
  1197. versions, write access to the volume can be enabled and the volume used as
  1198. normal.  Another possibility is to simply store checksums or digital signatures
  1199. for the SFS programs on the encrypted volume, and only write-enable it if the
  1200. checksums or signatures check out.
  1201.  
  1202. Booting into an encrypted partition, as described in the section "Advanced SFS
  1203. Driver Options" above, which contains "clean" copies of the SFS software, and
  1204. comparing the clean driver or checksum with the one used to boot into the
  1205. encrypted partition, will reduce the risk of malicious manipulation of the SFS
  1206. software even further.
  1207.  
  1208.  
  1209. Using SFS for Virus Protection
  1210.  
  1211. SFS can be used as a form of virus protection for large collections of
  1212. computers by using it to create a centralised entry point for all data to the
  1213. system.  Consider a company operating 1,000 separate machines.  Normally this
  1214. would require 1,000 copies of a virus scanner to be installed and updated every
  1215. few months as new viruses appear.  In addition, use of the scanner on every one
  1216. of the 1,000 machines would have to be enforced rigorously.
  1217.  
  1218. An alternative is to install SFS on each of the machines, and make a policy
  1219. that only SFS-encrypted disks will be used within the company.  Then a single
  1220. scanner can be installed on a single machine, and all disks brough in from the
  1221. outside scanned and encrypted on that machine.
  1222.  
  1223. If every computer is initially virus-free, and all disks are SFS-encrypted,
  1224. then there are two possible means of attack for a virus.  The first is to
  1225. infect a file or disk when it is outside the company.  However as disks
  1226. originating from within the company are encrypted, no files (or, indeed,
  1227. anything) are visible on them, so there is nothing for a virus to infect (in
  1228. fact, DOS won't even recognise the disks as being formatted).  All disks
  1229. originating from outside the company have to be processed by the single
  1230. controlled computer before they can be used (or SFS will refuse to mount them),
  1231. meaning that any known virus on a non-company disk should be picked up before
  1232. the disk is encrypted.
  1233.  
  1234. Alternatively, a boot sector virus could infect an SFS-encrypted disk[1].
  1235. However, if an attempt is made to use the infected disk (which involves
  1236. mounting it), the mount will fail as the boot sector will contain the virus
  1237. rather than the SFS volume header.  The person who tried to mount the volume
  1238. will assume the disk has not been "converted" yet, and will bring it to the
  1239. machine used for processing the disks.  At this point the virus can be found by
  1240. the scanner.  Although in theory an SFS disk whose volume header is overwritten
  1241. by a virus would be damaged beyond repair, in practice it can often be
  1242. recovered[2].
  1243.  
  1244. This procedure isn't totally error free.  For example, it won't work if there
  1245. are already viruses present on one or more of the machines before SFS is
  1246. installed. However it does provide a reasonable amount of protection, and has
  1247. the pleasant side effect of keeping all the company records secure against
  1248. unauthorized access attempts.
  1249.  
  1250. Footnote [1]: Boot sector viruses aren't terribly concerned about the exact
  1251.               operating system or disk format of a disk they infect.  Most of
  1252.               them use the "blind write" technique which involves hooking the
  1253.               BIOS disk I/O interrupt and waiting for a read call to the boot
  1254.               sector.  Once this call is detected, they either issue their own
  1255.               reads to detect whether the disk is already infected, or wait for
  1256.               the call to return from the BIOS read and look at the I/O buffer
  1257.               to check for the infection.  In either case if the disk is not
  1258.               infected, they infect it then and there.  Since DOS always tries
  1259.               to read the boot sector when it notices a disk has been changed,
  1260.               this type of virus gets to infect any disk (even non-DOS formats
  1261.               such as the ones used by some PC Unixen, assuming the BIOS
  1262.               routines are capable of reading/writing them).
  1263.  
  1264. Footnote [2]: In fact, most boot sector viruses retain a hidden copy of the
  1265.               original boot sector in various hiding places (at the end of the
  1266.               root directory, on the last physical sector on the disk, in a
  1267.               sector on a specially-formatted extra track, or in a "bad"
  1268.               sectors), so that a copy of the SFS volume header is probably at
  1269.               hand.  Only a relatively small number of viruses (for example
  1270.               AntiCMOS, which includes a stripped-down and vaguely
  1271.               MSDOS-compatible boot loader as part of its code, and WET, which
  1272.               includes a trivial boot loader which just prints a "Not bootable"
  1273.               message and loads the virus) actually overwrite the boot sector
  1274.               on a floppy disk without making a backup.  In addition, since
  1275.               some viruses make even a regular disk inaccessible to DOS after
  1276.               an infection (an example being the Stoned virus, which writes a
  1277.               parameter block for a 360KB disk onto any disk it infects), many
  1278.               anti-virus programs will perform boot virus removal in "physical
  1279.               mode" where access to the DOS logical volume usually associated
  1280.               with the physical drive is unimportant.  Such software will fix
  1281.               up infected SFS-encrypted floppies without complaint, assming the
  1282.               virus keeps the old boot sector somewhere, and that if the virus
  1283.               saves the boot sector in a scrambled form that the anti-virus
  1284.               software is aware of the need to unscramble it during the
  1285.               recovery process (for example, when the Stoned.Empire.Monkey.*
  1286.               viruses infect the hard disk, they save the master boot record in
  1287.               scrambled form which first needs to be unscrambled by the
  1288.               virus-removal software).
  1289.  
  1290.               Some anti-virus programs offer a "generic" technique for removing
  1291.               boot-sector viruses which consists of overwriting the existing
  1292.               boot sector with some form of BIOS-compatible (though usually
  1293.               non-bootable) boot sector, which wouldn't fix an infected SFS
  1294.               disk.  In this case a knowledgeable user could search the disk
  1295.               for the original SFS boot sector and write it back into its
  1296.               proper place.
  1297.  
  1298.               One possible problem is that if a user inserts an infected disk
  1299.               (which SFS can't recognise) and attempts to reboot the machine,
  1300.               booting off the infected floppy, the virus is immediately
  1301.               activated and the user's hard drive is infected.  If the virus is
  1302.               a stealth virus (for example Exebug), then the infected disk
  1303.               which was previously unrecognisable to SFS is suddenly "fixed"
  1304.               because the virus substitutes the original SFS boot sector which
  1305.               has been hidden elsewhere on the disk for the virus-infected boot
  1306.               sector.  A simple solution to the problem of a panic reboot by a
  1307.               user causing an infection is to force the machine to boot from
  1308.               the C: drive rather than the A: drive.  Since SFS only runs on
  1309.               386+ machines, it is very likely that the selectable boot
  1310.               sequence feature is present in the BIOS.
  1311.